// vite.config.ts
import path2 from "node:path";
import process2 from "node:process";
import { loadEnv as loadEnv2 } from "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/node_modules/.pnpm/vite@5.4.10_@types+node@22.9.0_less@4.2.0_terser@5.36.0/node_modules/vite/dist/node/index.js";
import viewport from "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/node_modules/.pnpm/postcss-mobile-forever@4.2.4_postcss@8.4.47/node_modules/postcss-mobile-forever/index.js";
import autoprefixer from "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/node_modules/.pnpm/autoprefixer@10.4.20_postcss@8.4.47/node_modules/autoprefixer/lib/autoprefixer.js";

// build/vite/index.ts
import { dirname, resolve } from "node:path";
import { fileURLToPath } from "node:url";
import process from "node:process";
import { unheadVueComposablesImports } from "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/node_modules/.pnpm/@unhead+vue@1.11.11_vue@3.5.12_typescript@5.6.3_/node_modules/@unhead/vue/dist/index.mjs";
import legacy from "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/node_modules/.pnpm/@vitejs+plugin-legacy@5.4.3_terser@5.36.0_vite@5.4.10_@types+node@22.9.0_less@4.2.0_terser@5.36.0_/node_modules/@vitejs/plugin-legacy/dist/index.mjs";
import vue from "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/node_modules/.pnpm/@vitejs+plugin-vue@5.1.4_vite@5.4.10_@types+node@22.9.0_less@4.2.0_terser@5.36.0__vue@3.5.12_typescript@5.6.3_/node_modules/@vitejs/plugin-vue/dist/index.mjs";
import UnoCSS from "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/node_modules/.pnpm/unocss@0.64.0_postcss@8.4.47_rollup@4.24.4_vite@5.4.10_@types+node@22.9.0_less@4.2.0_terser@5_vpsm2aypg5whqygwplyk5z27yq/node_modules/unocss/dist/vite.mjs";
import AutoImport from "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/node_modules/.pnpm/unplugin-auto-import@0.18.3_@nuxt+kit@3.14.159_rollup@4.24.4_webpack-sources@3.2.3__@vueuse+c_yf6shgsbyfztkfmnmymk4lh67m/node_modules/unplugin-auto-import/dist/vite.js";
import { VantResolver } from "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/node_modules/.pnpm/@vant+auto-import-resolver@1.2.1/node_modules/@vant/auto-import-resolver/dist/index.esm.mjs";
import Components from "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/node_modules/.pnpm/unplugin-vue-components@0.27.4_@babel+parser@7.26.2_@nuxt+kit@3.14.159_rollup@4.24.4_webpack-_5uovt2hnxde6cqgedwjcrl2gzq/node_modules/unplugin-vue-components/dist/vite.js";
import { VueRouterAutoImports } from "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/node_modules/.pnpm/unplugin-vue-router@0.10.8_rollup@4.24.4_vue-router@4.4.5_vue@3.5.12_typescript@5.6.3___vue@3_7y54qkvvnu36g6yof5nnhqkoau/node_modules/unplugin-vue-router/dist/index.js";
import VueRouter from "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/node_modules/.pnpm/unplugin-vue-router@0.10.8_rollup@4.24.4_vue-router@4.4.5_vue@3.5.12_typescript@5.6.3___vue@3_7y54qkvvnu36g6yof5nnhqkoau/node_modules/unplugin-vue-router/dist/vite.js";
import mockDevServerPlugin from "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/node_modules/.pnpm/vite-plugin-mock-dev-server@1.8.0_esbuild@0.23.1_rollup@4.24.4_vite@5.4.10_@types+node@22.9.0_less@4.2.0_terser@5.36.0_/node_modules/vite-plugin-mock-dev-server/dist/index.js";
import { VitePWA } from "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/node_modules/.pnpm/vite-plugin-pwa@0.20.5_vite@5.4.10_@types+node@22.9.0_less@4.2.0_terser@5.36.0__workbox-build@7.1.1_workbox-window@7.1.0/node_modules/vite-plugin-pwa/dist/index.js";
import Sitemap from "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/node_modules/.pnpm/vite-plugin-sitemap@0.7.1/node_modules/vite-plugin-sitemap/dist/index.js";
import VueDevTools from "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/node_modules/.pnpm/vite-plugin-vue-devtools@7.6.3_@nuxt+kit@3.14.159_rollup@4.24.4_webpack-sources@3.2.3__rollup_6okoq7ylxkled54ywbiotlm4lq/node_modules/vite-plugin-vue-devtools/dist/vite.mjs";
import VueI18nPlugin from "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/node_modules/.pnpm/@intlify+unplugin-vue-i18n@5.2.0_@vue+compiler-dom@3.5.12_eslint@9.14.0_jiti@2.4.0__rollup@4._yniw5egm674ydpe6jllo5l7dq4/node_modules/@intlify/unplugin-vue-i18n/lib/vite.mjs";

// build/vite/vconsole.ts
import path from "node:path";
import { viteVConsole } from "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/node_modules/.pnpm/vite-plugin-vconsole@2.1.1/node_modules/vite-plugin-vconsole/dist/main.mjs";
function createViteVConsole() {
  return viteVConsole({
    entry: [path.resolve("src/main.ts")],
    enabled: false,
    config: {
      maxLogNumber: 1e3,
      theme: "light"
    },
    // https://github.com/vadxq/vite-plugin-vconsole/issues/21
    dynamicConfig: {
      theme: `document.documentElement.classList.contains('dark') ? 'dark' : 'light'`
    },
    eventListener: `
      const targetElement = document.querySelector('html'); // \u62E9\u8981\u76D1\u542C\u7684\u5143\u7D20
      const observerOptions = {
        attributes: true, // \u76D1\u542C\u5C5E\u6027\u53D8\u5316
        attributeFilter: ['class'] // \u53EA\u76D1\u542Cclass\u5C5E\u6027\u53D8\u5316
      };

      // \u5B9A\u4E49\u56DE\u8C03\u51FD\u6570\u6765\u5904\u7406\u89C2\u5BDF\u5230\u7684\u53D8\u5316
      function handleAttributeChange(mutationsList) {
        for(let mutation of mutationsList) {
          if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
            if (window && window.vConsole) {
              window.vConsole.dynamicChange.value = new Date().getTime();
            }
          }
        }
      }

      // \u521B\u5EFA\u89C2\u5BDF\u8005\u5B9E\u4F8B\u5E76\u4F20\u5165\u56DE\u8C03\u51FD\u6570
      const observer = new MutationObserver(handleAttributeChange);

      // \u5F00\u59CB\u89C2\u5BDF\u76EE\u6807\u5143\u7D20
      observer.observe(targetElement, observerOptions);

      // \u5F53\u4E0D\u518D\u9700\u8981\u89C2\u5BDF\u65F6\uFF0C\u505C\u6B62\u89C2\u5BDF
      // observer.disconnect();
    `
  });
}

// build/vite/index.ts
import { loadEnv } from "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/node_modules/.pnpm/vite@5.4.10_@types+node@22.9.0_less@4.2.0_terser@5.36.0/node_modules/vite/dist/node/index.js";
var __vite_injected_original_import_meta_url = "file:///D:/chenxin/project/mr/demo/vue3-vant-mobile-main/build/vite/index.ts";
function createVitePlugins(mode) {
  const env = loadEnv(mode, process.cwd());
  return [
    // https://github.com/posva/unplugin-vue-router
    VueRouter({
      extensions: [".vue"],
      routesFolder: "src/pages",
      dts: "src/types/typed-router.d.ts"
    }),
    vue(),
    // https://github.com/jbaubree/vite-plugin-sitemap
    Sitemap({
      outDir: env.VITE_APP_OUT_DIR || "dist"
    }),
    // https://github.com/pengzhanbo/vite-plugin-mock-dev-server
    mockDevServerPlugin(),
    // https://github.com/antfu/unplugin-vue-components
    Components({
      extensions: ["vue"],
      resolvers: [VantResolver()],
      include: [/\.vue$/, /\.vue\?vue/],
      dts: "src/types/components.d.ts"
    }),
    // https://github.com/antfu/unplugin-auto-import
    AutoImport({
      include: [
        /\.[tj]sx?$/,
        /\.vue$/,
        /\.vue\?vue/
      ],
      imports: [
        "vue",
        "vitest",
        "@vueuse/core",
        VueRouterAutoImports,
        {
          "vue-router/auto": ["useLink"],
          "@/utils/i18n": ["i18n", "locale"],
          "vue-i18n": ["useI18n"]
        },
        unheadVueComposablesImports
      ],
      dts: "src/types/auto-imports.d.ts",
      dirs: [
        "src/composables"
      ],
      resolvers: [VantResolver()]
    }),
    // https://github.com/intlify/bundle-tools/tree/main/packages/unplugin-vue-i18n
    VueI18nPlugin({
      // locale messages resource pre-compile option
      include: resolve(dirname(fileURLToPath(__vite_injected_original_import_meta_url)), "../../src/locales/**")
    }),
    legacy({
      targets: ["defaults", "not IE 11"]
    }),
    // https://github.com/antfu/unocss
    // see uno.config.ts for config
    UnoCSS(),
    // https://github.com/vadxq/vite-plugin-vconsole
    createViteVConsole(),
    // https://github.com/vuejs/devtools-next
    VueDevTools(),
    // https://github.com/antfu/vite-plugin-pwa
    VitePWA({
      registerType: "autoUpdate",
      includeAssets: ["favicon.svg", "safari-pinned-tab.svg"],
      manifest: {
        name: "vue3-vant-mobile",
        short_name: "vue3-vant-mobile",
        theme_color: "#ffffff",
        icons: [
          {
            src: "/pwa-192x192.png",
            sizes: "192x192",
            type: "image/png"
          },
          {
            src: "/pwa-512x512.png",
            sizes: "512x512",
            type: "image/png"
          },
          {
            src: "/pwa-512x512.png",
            sizes: "512x512",
            type: "image/png",
            purpose: "any maskable"
          }
        ]
      }
    })
  ];
}

// build/vite/optimize.ts
var include = [
  "axios",
  "echarts",
  "lodash-es",
  "resize-detector",
  "vant/es/cell-group/style/index",
  "vant/es/popup/style/index",
  "vant/es/picker/style/index",
  "vant/es/cell/style/index",
  "vant/es/switch/style/index",
  "vant/es/space/style/index",
  "vant/es/button/style/index",
  "vant/es/empty/style/index",
  "vant/es/icon/style/index",
  "vant/es/stepper/style/index",
  "vant/es/image/style/index",
  "vant/es/form/style/index",
  "vant/es/field/style/index",
  "vant/es/notify/style/index"
];
var exclude = [
  "@iconify-json/carbon"
];

// vite.config.ts
var __vite_injected_original_dirname = "D:\\chenxin\\project\\mr\\demo\\vue3-vant-mobile-main";
var vite_config_default = ({ mode }) => {
  const root = process2.cwd();
  const env = loadEnv2(mode, root);
  return {
    base: env.VITE_APP_PUBLIC_PATH,
    plugins: createVitePlugins(mode),
    server: {
      host: true,
      port: 6500,
      proxy: {
        "/api": {
          target: "http://localhost:3000",
          changeOrigin: true,
          rewrite: (path3) => path3.replace(/^\/api/, "")
        }
      }
    },
    resolve: {
      alias: {
        "~@": path2.join(__vite_injected_original_dirname, "./src"),
        "@": path2.join(__vite_injected_original_dirname, "./src"),
        "~": path2.join(__vite_injected_original_dirname, "./src/assets"),
        "~root": path2.join(__vite_injected_original_dirname, ".")
      }
    },
    css: {
      postcss: {
        plugins: [
          autoprefixer(),
          // https://github.com/wswmsword/postcss-mobile-forever
          viewport({
            appSelector: "#app",
            viewportWidth: 375,
            maxDisplayWidth: 600,
            rootContainingBlockSelectorList: [
              "van-tabbar",
              "van-popup"
            ],
            border: true
          })
        ]
      }
    },
    build: {
      cssCodeSplit: false,
      chunkSizeWarningLimit: 2048,
      outDir: env.VITE_APP_OUT_DIR || "dist"
    },
    optimizeDeps: { include, exclude }
  };
};
export {
  vite_config_default as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiLCAiYnVpbGQvdml0ZS9pbmRleC50cyIsICJidWlsZC92aXRlL3Zjb25zb2xlLnRzIiwgImJ1aWxkL3ZpdGUvb3B0aW1pemUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJEOlxcXFxjaGVueGluXFxcXHByb2plY3RcXFxcbXJcXFxcZGVtb1xcXFx2dWUzLXZhbnQtbW9iaWxlLW1haW5cIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkQ6XFxcXGNoZW54aW5cXFxccHJvamVjdFxcXFxtclxcXFxkZW1vXFxcXHZ1ZTMtdmFudC1tb2JpbGUtbWFpblxcXFx2aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRDovY2hlbnhpbi9wcm9qZWN0L21yL2RlbW8vdnVlMy12YW50LW1vYmlsZS1tYWluL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJ1xuaW1wb3J0IHByb2Nlc3MgZnJvbSAnbm9kZTpwcm9jZXNzJ1xuaW1wb3J0IHsgbG9hZEVudiB9IGZyb20gJ3ZpdGUnXG5pbXBvcnQgdHlwZSB7IENvbmZpZ0VudiwgVXNlckNvbmZpZyB9IGZyb20gJ3ZpdGUnXG5pbXBvcnQgdmlld3BvcnQgZnJvbSAncG9zdGNzcy1tb2JpbGUtZm9yZXZlcidcbmltcG9ydCBhdXRvcHJlZml4ZXIgZnJvbSAnYXV0b3ByZWZpeGVyJ1xuaW1wb3J0IHsgY3JlYXRlVml0ZVBsdWdpbnMgfSBmcm9tICcuL2J1aWxkL3ZpdGUnXG5pbXBvcnQgeyBleGNsdWRlLCBpbmNsdWRlIH0gZnJvbSAnLi9idWlsZC92aXRlL29wdGltaXplJ1xuXG5leHBvcnQgZGVmYXVsdCAoeyBtb2RlIH06IENvbmZpZ0Vudik6IFVzZXJDb25maWcgPT4ge1xuICBjb25zdCByb290ID0gcHJvY2Vzcy5jd2QoKVxuICBjb25zdCBlbnYgPSBsb2FkRW52KG1vZGUsIHJvb3QpXG5cbiAgcmV0dXJuIHtcbiAgICBiYXNlOiBlbnYuVklURV9BUFBfUFVCTElDX1BBVEgsXG4gICAgcGx1Z2luczogY3JlYXRlVml0ZVBsdWdpbnMobW9kZSksXG5cbiAgICBzZXJ2ZXI6IHtcbiAgICAgIGhvc3Q6IHRydWUsXG4gICAgICBwb3J0OiA2NTAwLFxuICAgICAgcHJveHk6IHtcbiAgICAgICAgJy9hcGknOiB7XG4gICAgICAgICAgdGFyZ2V0OiAnaHR0cDovL2xvY2FsaG9zdDozMDAwJyxcbiAgICAgICAgICBjaGFuZ2VPcmlnaW46IHRydWUsXG4gICAgICAgICAgcmV3cml0ZTogcGF0aCA9PiBwYXRoLnJlcGxhY2UoL15cXC9hcGkvLCAnJyksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICByZXNvbHZlOiB7XG4gICAgICBhbGlhczoge1xuICAgICAgICAnfkAnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9zcmMnKSxcbiAgICAgICAgJ0AnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9zcmMnKSxcbiAgICAgICAgJ34nOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9zcmMvYXNzZXRzJyksXG4gICAgICAgICd+cm9vdCc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuJyksXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBjc3M6IHtcbiAgICAgIHBvc3Rjc3M6IHtcbiAgICAgICAgcGx1Z2luczogW1xuICAgICAgICAgIGF1dG9wcmVmaXhlcigpLFxuICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS93c3dtc3dvcmQvcG9zdGNzcy1tb2JpbGUtZm9yZXZlclxuICAgICAgICAgIHZpZXdwb3J0KHtcbiAgICAgICAgICAgIGFwcFNlbGVjdG9yOiAnI2FwcCcsXG4gICAgICAgICAgICB2aWV3cG9ydFdpZHRoOiAzNzUsXG4gICAgICAgICAgICBtYXhEaXNwbGF5V2lkdGg6IDYwMCxcbiAgICAgICAgICAgIHJvb3RDb250YWluaW5nQmxvY2tTZWxlY3Rvckxpc3Q6IFtcbiAgICAgICAgICAgICAgJ3Zhbi10YWJiYXInLFxuICAgICAgICAgICAgICAndmFuLXBvcHVwJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBib3JkZXI6IHRydWUsXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBidWlsZDoge1xuICAgICAgY3NzQ29kZVNwbGl0OiBmYWxzZSxcbiAgICAgIGNodW5rU2l6ZVdhcm5pbmdMaW1pdDogMjA0OCxcbiAgICAgIG91dERpcjogZW52LlZJVEVfQVBQX09VVF9ESVIgfHwgJ2Rpc3QnLFxuICAgIH0sXG5cbiAgICBvcHRpbWl6ZURlcHM6IHsgaW5jbHVkZSwgZXhjbHVkZSB9LFxuICB9XG59XG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkQ6XFxcXGNoZW54aW5cXFxccHJvamVjdFxcXFxtclxcXFxkZW1vXFxcXHZ1ZTMtdmFudC1tb2JpbGUtbWFpblxcXFxidWlsZFxcXFx2aXRlXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJEOlxcXFxjaGVueGluXFxcXHByb2plY3RcXFxcbXJcXFxcZGVtb1xcXFx2dWUzLXZhbnQtbW9iaWxlLW1haW5cXFxcYnVpbGRcXFxcdml0ZVxcXFxpbmRleC50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRDovY2hlbnhpbi9wcm9qZWN0L21yL2RlbW8vdnVlMy12YW50LW1vYmlsZS1tYWluL2J1aWxkL3ZpdGUvaW5kZXgudHNcIjtpbXBvcnQgeyBkaXJuYW1lLCByZXNvbHZlIH0gZnJvbSAnbm9kZTpwYXRoJ1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gJ25vZGU6dXJsJ1xuaW1wb3J0IHByb2Nlc3MgZnJvbSAnbm9kZTpwcm9jZXNzJ1xuaW1wb3J0IHsgdW5oZWFkVnVlQ29tcG9zYWJsZXNJbXBvcnRzIH0gZnJvbSAnQHVuaGVhZC92dWUnXG5pbXBvcnQgbGVnYWN5IGZyb20gJ0B2aXRlanMvcGx1Z2luLWxlZ2FjeSdcbmltcG9ydCB2dWUgZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlJ1xuaW1wb3J0IFVub0NTUyBmcm9tICd1bm9jc3Mvdml0ZSdcbmltcG9ydCBBdXRvSW1wb3J0IGZyb20gJ3VucGx1Z2luLWF1dG8taW1wb3J0L3ZpdGUnXG5pbXBvcnQgeyBWYW50UmVzb2x2ZXIgfSBmcm9tICdAdmFudC9hdXRvLWltcG9ydC1yZXNvbHZlcidcbmltcG9ydCBDb21wb25lbnRzIGZyb20gJ3VucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3ZpdGUnXG5pbXBvcnQgeyBWdWVSb3V0ZXJBdXRvSW1wb3J0cyB9IGZyb20gJ3VucGx1Z2luLXZ1ZS1yb3V0ZXInXG5pbXBvcnQgVnVlUm91dGVyIGZyb20gJ3VucGx1Z2luLXZ1ZS1yb3V0ZXIvdml0ZSdcbmltcG9ydCBtb2NrRGV2U2VydmVyUGx1Z2luIGZyb20gJ3ZpdGUtcGx1Z2luLW1vY2stZGV2LXNlcnZlcidcbmltcG9ydCB7IFZpdGVQV0EgfSBmcm9tICd2aXRlLXBsdWdpbi1wd2EnXG5pbXBvcnQgU2l0ZW1hcCBmcm9tICd2aXRlLXBsdWdpbi1zaXRlbWFwJ1xuaW1wb3J0IFZ1ZURldlRvb2xzIGZyb20gJ3ZpdGUtcGx1Z2luLXZ1ZS1kZXZ0b29scydcbmltcG9ydCBWdWVJMThuUGx1Z2luIGZyb20gJ0BpbnRsaWZ5L3VucGx1Z2luLXZ1ZS1pMThuL3ZpdGUnXG5pbXBvcnQgeyBjcmVhdGVWaXRlVkNvbnNvbGUgfSBmcm9tICcuL3Zjb25zb2xlJ1xuaW1wb3J0IHsgbG9hZEVudiB9IGZyb20gJ3ZpdGUnXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVWaXRlUGx1Z2lucyhtb2RlOiBzdHJpbmcpIHtcbiAgY29uc3QgZW52ID0gbG9hZEVudihtb2RlLCBwcm9jZXNzLmN3ZCgpKVxuXG4gIHJldHVybiBbXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3Bvc3ZhL3VucGx1Z2luLXZ1ZS1yb3V0ZXJcbiAgICBWdWVSb3V0ZXIoe1xuICAgICAgZXh0ZW5zaW9uczogWycudnVlJ10sXG4gICAgICByb3V0ZXNGb2xkZXI6ICdzcmMvcGFnZXMnLFxuICAgICAgZHRzOiAnc3JjL3R5cGVzL3R5cGVkLXJvdXRlci5kLnRzJyxcbiAgICB9KSxcblxuICAgIHZ1ZSgpLFxuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2piYXVicmVlL3ZpdGUtcGx1Z2luLXNpdGVtYXBcbiAgICBTaXRlbWFwKHtcbiAgICAgIG91dERpcjogZW52LlZJVEVfQVBQX09VVF9ESVIgfHwgJ2Rpc3QnLFxuICAgIH0pLFxuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3Blbmd6aGFuYm8vdml0ZS1wbHVnaW4tbW9jay1kZXYtc2VydmVyXG4gICAgbW9ja0RldlNlcnZlclBsdWdpbigpLFxuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudGZ1L3VucGx1Z2luLXZ1ZS1jb21wb25lbnRzXG4gICAgQ29tcG9uZW50cyh7XG4gICAgICBleHRlbnNpb25zOiBbJ3Z1ZSddLFxuICAgICAgcmVzb2x2ZXJzOiBbVmFudFJlc29sdmVyKCldLFxuICAgICAgaW5jbHVkZTogWy9cXC52dWUkLywgL1xcLnZ1ZVxcP3Z1ZS9dLFxuICAgICAgZHRzOiAnc3JjL3R5cGVzL2NvbXBvbmVudHMuZC50cycsXG4gICAgfSksXG5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50ZnUvdW5wbHVnaW4tYXV0by1pbXBvcnRcbiAgICBBdXRvSW1wb3J0KHtcbiAgICAgIGluY2x1ZGU6IFtcbiAgICAgICAgL1xcLlt0al1zeD8kLyxcbiAgICAgICAgL1xcLnZ1ZSQvLFxuICAgICAgICAvXFwudnVlXFw/dnVlLyxcbiAgICAgIF0sXG4gICAgICBpbXBvcnRzOiBbXG4gICAgICAgICd2dWUnLFxuICAgICAgICAndml0ZXN0JyxcbiAgICAgICAgJ0B2dWV1c2UvY29yZScsXG4gICAgICAgIFZ1ZVJvdXRlckF1dG9JbXBvcnRzLFxuICAgICAgICB7XG4gICAgICAgICAgJ3Z1ZS1yb3V0ZXIvYXV0byc6IFsndXNlTGluayddLFxuICAgICAgICAgICdAL3V0aWxzL2kxOG4nOiBbJ2kxOG4nLCAnbG9jYWxlJ10sXG4gICAgICAgICAgJ3Z1ZS1pMThuJzogWyd1c2VJMThuJ10sXG4gICAgICAgIH0sXG4gICAgICAgIHVuaGVhZFZ1ZUNvbXBvc2FibGVzSW1wb3J0cyxcbiAgICAgIF0sXG4gICAgICBkdHM6ICdzcmMvdHlwZXMvYXV0by1pbXBvcnRzLmQudHMnLFxuICAgICAgZGlyczogW1xuICAgICAgICAnc3JjL2NvbXBvc2FibGVzJyxcbiAgICAgIF0sXG4gICAgICByZXNvbHZlcnM6IFtWYW50UmVzb2x2ZXIoKV0sXG4gICAgfSksXG5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vaW50bGlmeS9idW5kbGUtdG9vbHMvdHJlZS9tYWluL3BhY2thZ2VzL3VucGx1Z2luLXZ1ZS1pMThuXG4gICAgVnVlSTE4blBsdWdpbih7XG4gICAgICAvLyBsb2NhbGUgbWVzc2FnZXMgcmVzb3VyY2UgcHJlLWNvbXBpbGUgb3B0aW9uXG4gICAgICBpbmNsdWRlOiByZXNvbHZlKGRpcm5hbWUoZmlsZVVSTFRvUGF0aChpbXBvcnQubWV0YS51cmwpKSwgJy4uLy4uL3NyYy9sb2NhbGVzLyoqJyksXG4gICAgfSksXG5cbiAgICBsZWdhY3koe1xuICAgICAgdGFyZ2V0czogWydkZWZhdWx0cycsICdub3QgSUUgMTEnXSxcbiAgICB9KSxcblxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnRmdS91bm9jc3NcbiAgICAvLyBzZWUgdW5vLmNvbmZpZy50cyBmb3IgY29uZmlnXG4gICAgVW5vQ1NTKCksXG5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdmFkeHEvdml0ZS1wbHVnaW4tdmNvbnNvbGVcbiAgICBjcmVhdGVWaXRlVkNvbnNvbGUoKSxcblxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92dWVqcy9kZXZ0b29scy1uZXh0XG4gICAgVnVlRGV2VG9vbHMoKSxcblxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnRmdS92aXRlLXBsdWdpbi1wd2FcbiAgICBWaXRlUFdBKHtcbiAgICAgIHJlZ2lzdGVyVHlwZTogJ2F1dG9VcGRhdGUnLFxuICAgICAgaW5jbHVkZUFzc2V0czogWydmYXZpY29uLnN2ZycsICdzYWZhcmktcGlubmVkLXRhYi5zdmcnXSxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIG5hbWU6ICd2dWUzLXZhbnQtbW9iaWxlJyxcbiAgICAgICAgc2hvcnRfbmFtZTogJ3Z1ZTMtdmFudC1tb2JpbGUnLFxuICAgICAgICB0aGVtZV9jb2xvcjogJyNmZmZmZmYnLFxuICAgICAgICBpY29uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNyYzogJy9wd2EtMTkyeDE5Mi5wbmcnLFxuICAgICAgICAgICAgc2l6ZXM6ICcxOTJ4MTkyJyxcbiAgICAgICAgICAgIHR5cGU6ICdpbWFnZS9wbmcnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgc3JjOiAnL3B3YS01MTJ4NTEyLnBuZycsXG4gICAgICAgICAgICBzaXplczogJzUxMng1MTInLFxuICAgICAgICAgICAgdHlwZTogJ2ltYWdlL3BuZycsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzcmM6ICcvcHdhLTUxMng1MTIucG5nJyxcbiAgICAgICAgICAgIHNpemVzOiAnNTEyeDUxMicsXG4gICAgICAgICAgICB0eXBlOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgICAgIHB1cnBvc2U6ICdhbnkgbWFza2FibGUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pLFxuICBdXG59XG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIkQ6XFxcXGNoZW54aW5cXFxccHJvamVjdFxcXFxtclxcXFxkZW1vXFxcXHZ1ZTMtdmFudC1tb2JpbGUtbWFpblxcXFxidWlsZFxcXFx2aXRlXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJEOlxcXFxjaGVueGluXFxcXHByb2plY3RcXFxcbXJcXFxcZGVtb1xcXFx2dWUzLXZhbnQtbW9iaWxlLW1haW5cXFxcYnVpbGRcXFxcdml0ZVxcXFx2Y29uc29sZS50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRDovY2hlbnhpbi9wcm9qZWN0L21yL2RlbW8vdnVlMy12YW50LW1vYmlsZS1tYWluL2J1aWxkL3ZpdGUvdmNvbnNvbGUudHNcIjtpbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnXHJcbmltcG9ydCB7IHZpdGVWQ29uc29sZSB9IGZyb20gJ3ZpdGUtcGx1Z2luLXZjb25zb2xlJ1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVZpdGVWQ29uc29sZSgpIHtcclxuICByZXR1cm4gdml0ZVZDb25zb2xlKHtcclxuICAgIGVudHJ5OiBbcGF0aC5yZXNvbHZlKCdzcmMvbWFpbi50cycpXSxcclxuICAgIGVuYWJsZWQ6IGZhbHNlLFxyXG4gICAgY29uZmlnOiB7XHJcbiAgICAgIG1heExvZ051bWJlcjogMTAwMCxcclxuICAgICAgdGhlbWU6ICdsaWdodCcsXHJcbiAgICB9LFxyXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3ZhZHhxL3ZpdGUtcGx1Z2luLXZjb25zb2xlL2lzc3Vlcy8yMVxyXG4gICAgZHluYW1pY0NvbmZpZzoge1xyXG4gICAgICB0aGVtZTogYGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2RhcmsnKSA/ICdkYXJrJyA6ICdsaWdodCdgLFxyXG4gICAgfSxcclxuICAgIGV2ZW50TGlzdGVuZXI6IGBcclxuICAgICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2h0bWwnKTsgLy8gXHU2MkU5XHU4OTgxXHU3NkQxXHU1NDJDXHU3Njg0XHU1MTQzXHU3RDIwXHJcbiAgICAgIGNvbnN0IG9ic2VydmVyT3B0aW9ucyA9IHtcclxuICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLCAvLyBcdTc2RDFcdTU0MkNcdTVDNUVcdTYwMjdcdTUzRDhcdTUzMTZcclxuICAgICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnY2xhc3MnXSAvLyBcdTUzRUFcdTc2RDFcdTU0MkNjbGFzc1x1NUM1RVx1NjAyN1x1NTNEOFx1NTMxNlxyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy8gXHU1QjlBXHU0RTQ5XHU1NkRFXHU4QzAzXHU1MUZEXHU2NTcwXHU2NzY1XHU1OTA0XHU3NDA2XHU4OUMyXHU1QkRGXHU1MjMwXHU3Njg0XHU1M0Q4XHU1MzE2XHJcbiAgICAgIGZ1bmN0aW9uIGhhbmRsZUF0dHJpYnV0ZUNoYW5nZShtdXRhdGlvbnNMaXN0KSB7XHJcbiAgICAgICAgZm9yKGxldCBtdXRhdGlvbiBvZiBtdXRhdGlvbnNMaXN0KSB7XHJcbiAgICAgICAgICBpZiAobXV0YXRpb24udHlwZSA9PT0gJ2F0dHJpYnV0ZXMnICYmIG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdjbGFzcycpIHtcclxuICAgICAgICAgICAgaWYgKHdpbmRvdyAmJiB3aW5kb3cudkNvbnNvbGUpIHtcclxuICAgICAgICAgICAgICB3aW5kb3cudkNvbnNvbGUuZHluYW1pY0NoYW5nZS52YWx1ZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBcdTUyMUJcdTVFRkFcdTg5QzJcdTVCREZcdTgwMDVcdTVCOUVcdTRGOEJcdTVFNzZcdTRGMjBcdTUxNjVcdTU2REVcdThDMDNcdTUxRkRcdTY1NzBcclxuICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihoYW5kbGVBdHRyaWJ1dGVDaGFuZ2UpO1xyXG5cclxuICAgICAgLy8gXHU1RjAwXHU1OUNCXHU4OUMyXHU1QkRGXHU3NkVFXHU2ODA3XHU1MTQzXHU3RDIwXHJcbiAgICAgIG9ic2VydmVyLm9ic2VydmUodGFyZ2V0RWxlbWVudCwgb2JzZXJ2ZXJPcHRpb25zKTtcclxuXHJcbiAgICAgIC8vIFx1NUY1M1x1NEUwRFx1NTE4RFx1OTcwMFx1ODk4MVx1ODlDMlx1NUJERlx1NjVGNlx1RkYwQ1x1NTA1Q1x1NkI2Mlx1ODlDMlx1NUJERlxyXG4gICAgICAvLyBvYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICBgLFxyXG4gIH0pXHJcbn1cclxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJEOlxcXFxjaGVueGluXFxcXHByb2plY3RcXFxcbXJcXFxcZGVtb1xcXFx2dWUzLXZhbnQtbW9iaWxlLW1haW5cXFxcYnVpbGRcXFxcdml0ZVwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRDpcXFxcY2hlbnhpblxcXFxwcm9qZWN0XFxcXG1yXFxcXGRlbW9cXFxcdnVlMy12YW50LW1vYmlsZS1tYWluXFxcXGJ1aWxkXFxcXHZpdGVcXFxcb3B0aW1pemUudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0Q6L2NoZW54aW4vcHJvamVjdC9tci9kZW1vL3Z1ZTMtdmFudC1tb2JpbGUtbWFpbi9idWlsZC92aXRlL29wdGltaXplLnRzXCI7Y29uc3QgaW5jbHVkZSA9IFtcbiAgJ2F4aW9zJyxcbiAgJ2VjaGFydHMnLFxuICAnbG9kYXNoLWVzJyxcbiAgJ3Jlc2l6ZS1kZXRlY3RvcicsXG4gICd2YW50L2VzL2NlbGwtZ3JvdXAvc3R5bGUvaW5kZXgnLFxuICAndmFudC9lcy9wb3B1cC9zdHlsZS9pbmRleCcsXG4gICd2YW50L2VzL3BpY2tlci9zdHlsZS9pbmRleCcsXG4gICd2YW50L2VzL2NlbGwvc3R5bGUvaW5kZXgnLFxuICAndmFudC9lcy9zd2l0Y2gvc3R5bGUvaW5kZXgnLFxuICAndmFudC9lcy9zcGFjZS9zdHlsZS9pbmRleCcsXG4gICd2YW50L2VzL2J1dHRvbi9zdHlsZS9pbmRleCcsXG4gICd2YW50L2VzL2VtcHR5L3N0eWxlL2luZGV4JyxcbiAgJ3ZhbnQvZXMvaWNvbi9zdHlsZS9pbmRleCcsXG4gICd2YW50L2VzL3N0ZXBwZXIvc3R5bGUvaW5kZXgnLFxuICAndmFudC9lcy9pbWFnZS9zdHlsZS9pbmRleCcsXG4gICd2YW50L2VzL2Zvcm0vc3R5bGUvaW5kZXgnLFxuICAndmFudC9lcy9maWVsZC9zdHlsZS9pbmRleCcsXG4gICd2YW50L2VzL25vdGlmeS9zdHlsZS9pbmRleCcsXG5dXG5cbmNvbnN0IGV4Y2x1ZGUgPSBbXG4gICdAaWNvbmlmeS1qc29uL2NhcmJvbicsXG5dXG5cbmV4cG9ydCB7IGluY2x1ZGUsIGV4Y2x1ZGUgfVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUE4VSxPQUFPQSxXQUFVO0FBQy9WLE9BQU9DLGNBQWE7QUFDcEIsU0FBUyxXQUFBQyxnQkFBZTtBQUV4QixPQUFPLGNBQWM7QUFDckIsT0FBTyxrQkFBa0I7OztBQ0w4VSxTQUFTLFNBQVMsZUFBZTtBQUN4WSxTQUFTLHFCQUFxQjtBQUM5QixPQUFPLGFBQWE7QUFDcEIsU0FBUyxtQ0FBbUM7QUFDNUMsT0FBTyxZQUFZO0FBQ25CLE9BQU8sU0FBUztBQUNoQixPQUFPLFlBQVk7QUFDbkIsT0FBTyxnQkFBZ0I7QUFDdkIsU0FBUyxvQkFBb0I7QUFDN0IsT0FBTyxnQkFBZ0I7QUFDdkIsU0FBUyw0QkFBNEI7QUFDckMsT0FBTyxlQUFlO0FBQ3RCLE9BQU8seUJBQXlCO0FBQ2hDLFNBQVMsZUFBZTtBQUN4QixPQUFPLGFBQWE7QUFDcEIsT0FBTyxpQkFBaUI7QUFDeEIsT0FBTyxtQkFBbUI7OztBQ2hCbVYsT0FBTyxVQUFVO0FBQzlYLFNBQVMs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LFVBQVU7QUFBQSxFQUMzWDtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0Y7QUFFQSxJQUFNLFVBQVU7QUFBQSxFQUNkO0FBQ0Y7OztBSHZCQSxJQUFNLG1DQUFtQztBQVN6QyxJQUFPLHNCQUFRLENBQUMsRUFBRSxLQUFLLE1BQTZCO0FBQ2xELFFBQU0sT0FBT0MsU0FBUSxJQUFJO0FBQ3pCLFFBQU0sTUFBTUMsU0FBUSxNQUFNLElBQUk7QUFFOUIsU0FBTztBQUFBLElBQ0wsTUFBTSxJQUFJO0FBQUEsSUFDVixTQUFTLGtCQUFrQixJQUFJO0FBQUEsSUFFL0IsUUFBUTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sT0FBTztBQUFBLFFBQ0wsUUFBUTtBQUFBLFVBQ04sUUFBUTtBQUFBLFVBQ1IsY0FBYztBQUFBLFVBQ2QsU0FBUyxDQUFBQyxVQUFRQSxNQUFLLFFBQVEsVUFBVSxFQUFFO0FBQUEsUUFDNUM7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLElBRUEsU0FBUztBQUFBLE1BQ1AsT0FBTztBQUFBLFFBQ0wsTUFBTUEsTUFBSyxLQUFLLGtDQUFXLE9BQU87QUFBQSxRQUNsQyxLQUFLQSxNQUFLLEtBQUssa0NBQVcsT0FBTztBQUFBLFFBQ2pDLEtBQUtBLE1BQUssS0FBSyxrQ0FBVyxjQUFjO0FBQUEsUUFDeEMsU0FBU0EsTUFBSyxLQUFLLGtDQUFXLEdBQUc7QUFBQSxNQUNuQztBQUFBLElBQ0Y7QUFBQSxJQUVBLEtBQUs7QUFBQSxNQUNILFNBQVM7QUFBQSxRQUNQLFNBQVM7QUFBQSxVQUNQLGFBQWE7QUFBQTtBQUFBLFVBRWIsU0FBUztBQUFBLFlBQ1AsYUFBYTtBQUFBLFlBQ2IsZUFBZTtBQUFBLFlBQ2YsaUJBQWlCO0FBQUEsWUFDakIsaUNBQWlDO0FBQUEsY0FDL0I7QUFBQSxjQUNBO0FBQUEsWUFDRjtBQUFBLFlBQ0EsUUFBUTtBQUFBLFVBQ1YsQ0FBQztBQUFBLFFBQ0g7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLElBRUEsT0FBTztBQUFBLE1BQ0wsY0FBYztBQUFBLE1BQ2QsdUJBQXVCO0FBQUEsTUFDdkIsUUFBUSxJQUFJLG9CQUFvQjtBQUFBLElBQ2xDO0FBQUEsSUFFQSxjQUFjLEVBQUUsU0FBUyxRQUFRO0FBQUEsRUFDbkM7QUFDRjsiLAogICJuYW1lcyI6IFsicGF0aCIsICJwcm9jZXNzIiwgImxvYWRFbnYiLCAicHJvY2VzcyIsICJsb2FkRW52IiwgInBhdGgiXQp9Cg==
